--本库免费商用，使用无需注明
--新版本Jesse205库已跟随Aidelua同步更新，详情请访问 https://gitee.com/Jesse205/AideLua/tree/master/Jesse205Library
Jesse205={}
Jesse205.version="2.3.9"
Jesse205.versionCode=23999
App={}
App.R=luajava.bindClass(activity.getPackageName()..".R")
App.drawable={}
App.drawable.id={}

import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "java.io.File"

import "Jesse205.MyPaths"
if DetectionSettings then
  import "Jesse205.first"
end
--xpcall(function()import "Pretend"end,function()end)
import "Jesse205.math"
import "Jesse205.string"
import "Jesse205.theme"
import "java.io.*"
import "android.support.v4.widget.*"

import "android.content.pm.ActivityInfo"
import "Jesse205.ActionBarAnim"
import "Jesse205.MyToast"
import "Jesse205.MyDialog"
--import "Jesse205.MyTextStyle"
import "Jesse205.LayoutAnim"
--import "Jesse205.PadUtil"
import "android.net.Uri"
import "android.content.Context"
import "android.graphics.Typeface"
import "android.content.res.Configuration"
import "android.content.Intent"
pcall(import,"com.bumptech.glide.Glide")
pcall(import,"layouts.MyButton")
pcall(import,"glidetoview")
local root,rish=false,false


function 透明动画(view,a,b,c,d)
  import "android.animation.ObjectAnimator"
  local alpha = ObjectAnimator.ofFloat(view, "alpha",{ a, b})
  alpha.setDuration(c)--设置动画时间
  alpha.setInterpolator(d)--设置动画插入器，减速
  --alpha.setRepeatCount(-1)--设置动画重复次数，这里-1代表无限
  --alpha.setRepeatMode(Animation.REVERSE)--设置动画循环模式。
  alpha.start()--启动动画。
end


function overshootAnimation(view)
  import "android.animation.ObjectAnimator"
  import "android.view.animation.DecelerateInterpolator"
  local move=math.dp2int(2)
  ObjectAnimator.ofFloat(view, "TranslationX",{0,-move,move,-move,move,0})
  .setDuration(500)
  .setInterpolator(DecelerateInterpolator())
  .start()
end


function startStatServer(appKey)
  local StatService=luajava.bindClass("com.baidu.mobstat.StatService")
  StatService()
  .setAppKey(appKey)
  .start(this)
end

function CopyText(文本)--复制文字，并非一个类
  activity.getSystemService(Context.CLIPBOARD_SERVICE).setText(文本)
end



function exec(cmd)--不推荐使用此方法
  local p=io.popen(tostring(cmd))
  local s=p:read("*a")
  p:close()
  return s
end

function suexec(cmd)--不推荐使用此方法
  local p
  if root then
    p=io.popen(tostring("su -c "..cmd))
   else
    p=io.popen(tostring("sh /data/data/"..activity.getPackageName().."/files/rish -c '"..cmd.."'"))
  end
  local s=p:read("*a")
  p:close()
  return s
end

function SaveBitmap(bitmap,file,update,recycle)--保存位图
  import "android.graphics.Bitmap"
  --import "java.io.BufferedOutputStream"
  --import "java.io.FileOutputStream"
  xpcall(function()
    --local file=File(path)
    file.createNewFile()
    local stream=BufferedOutputStream(FileOutputStream(file))
    bitmap.compress(Bitmap.CompressFormat.PNG,100,stream)
    stream.flush()
    stream.close()
    if update then
      activity.sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)))
    end
    end,function(err)
    error(err)
    AlertDialog.Builder(this)
    .setTitle("保存失败")
    .setMessage(err)
    .setPositiveButton("复制",function()
      CopyText(err)
      MyToast("已将错误信息复制到剪贴板")
    end)
    .setNegativeButton("取消",nil)
    .show()
  end)
  if recycle then
    bitmap.recycle()
  end
end


function checkRoot()--检测root，不推荐使用此方法
  if not(root or rish) then
    root=os.execute("su")
    if not(root) then
      rish=os.execute("sh /data/data/"..activity.getPackageName().."/files/rish")
      if not(rish) then
        MyToast("未获取Root权限，暂时不能使用")
      end
    end
    return root or rish
   else
    return true
  end
end

function toboolean(value)
  if value then
    return true
   else
    return false
  end
end

function os.suexecute(code)--执行需要root的命令，不推荐此方法。
  if root then
    return os.execute("su -c "..code)
   else
    return os.execute("sh /data/data/"..activity.getPackageName().."/files/rish -c '"..code.."'")
  end
end

function newActivity(...)
  return activity.newActivity(...)
end

function newSubActivity(name,...)
  local parentFile=File(activity.getLuaDir()).getParentFile()
  local parentFileName=parentFile.getName()
  if parentFileName=="sub" then
    newActivity(tostring(parentFile).."/"..name,...)
   else
    newActivity(activity.getLuaDir("sub/"..name),...)
  end
end